<!DOCTYPE html>
<html lang="en">
  <head>
    <meta charset="UTF-8" />
    <meta http-equiv="X-UA-Compatible" content="IE=edge" />
    <meta name="viewport" content="width=device-width, initial-scale=1.0" />
    <title>Document</title>
    <script src="../react18/react.development.js"></script>
    <script src="../react18/react-dom.development.js"></script>
    <script src="../react18/babel.min.js"></script>
  </head>
  <body>
    <div id="app"></div>
    <script type="text/babel">
      class App extends React.Component {
        state = {
          username: "laowang",
          password: "",
        };

        render() {
          const { username, password} = this.state;
          return (
            <form>
              <p>
                请输入用户名
                <input
                  type="text"
                  value={username}
                  onChange={this.changeInput("username")}
                />
              </p>

              <p>
                请输入密码
                <input
                  type="text"
                  value={password}
                  onChange={this.changeInput("password")}
                />
              </p>

              <button onClick={this.formSubmit}>提交</button>
            </form>
          );
        }

        formSubmit = (e) => {
          //阻止默认事件
          e.preventDefault();

          console.log("用户名", this.state.username);
          console.log("密码", this.state.password);
        };

        changeInput = (type) => {
          console.log("changeInput");
          console.log(type);
          //这个函数才是真正的事件函数
          return (e) => {
            this.setState({
              [type]: e.target.value,
            });
          };
        };

        /* passwordChange = (e) => {
          this.setState({ password: e.target.value });
        };

        usernameChange = (e) => {
          this.setState({ username: e.target.value });
        }; */
      }

      ReactDOM.createRoot(document.getElementById("app")).render(<App />);
    </script>
  </body>
</html>
